package main

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/schema"
)

var DB *gorm.DB

func init() {
	// 数据库配置信息
	username := "root"
	password := "12345678"
	host := "127.0.0.1"
	port := 3306
	dbname := "gorm"
	timeout := "10s"

	// 创建数据源名称（DSN）
	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local&timeout=%s", username, password, host, port, dbname, timeout)

	// 配置 GORM
	config := &gorm.Config{
		SkipDefaultTransaction: true,
		NamingStrategy: schema.NamingStrategy{
			TablePrefix:   "f_",  // 表名前缀
			SingularTable: true,  // 单数表名
			NoLowerCase:   false, // 关闭大小写转换
		},
	}

	// 打开数据库连接
	db, err := gorm.Open(mysql.Open(dsn), config)
	if err != nil {
		panic("连接数据库失败，error=" + err.Error())
	}

	// 打印数据库连接状态
	fmt.Printf("数据库连接状态: %v\n", db)

	// 将数据库连接赋值给包级变量
	DB = db
}
